package 剑指Offer.简单;

/**
 * @author caihe
 * @date 2022/9/1 9:07
 */
public class _65不用加减乘除做加法 {

    /**
     * 二进制使用 异或 和 与 的解释图 https://pic.leetcode-cn.com/1633672378-cUDkhZ-image.png
     */
    public int add(int a, int b) {

        while (b != 0) {
            int c = (a & b) << 1;// 计算a+b的进位
            a ^= b; // a和b本位求和 没有进位
            b = c;
        }
        return a;
    }
}
